package br.com.statehome.models;

import java.util.GregorianCalendar;
import java.math.BigDecimal;
import br.com.statehome.enuns.EnumCondicaoPagamento;
import java.util.List;
import java.util.LinkedList;

/**
 *
 * @author Rodrigo
 * @version 1.0
 * @since 09/04/2011
 * 
 */
public class Aluguel {

    private Imovel imovel;
    private Funcionario corretor;
    private BigDecimal valorAlugel;
    private PessoaFisica locatario;
    private GregorianCalendar dtInicioLocacao;
    private EnumCondicaoPagamento formaPagamento;
    private BigDecimal jurosPorAtraso;
    private BigDecimal moraPorDiaAtraso;
    private BigDecimal descontoPagamentoAntecipado;
    private List<PessoaFisica> fiadores;
    private GregorianCalendar diaPagamento;

    /**
     * Contrutor vazio da classe Aluguel
     */
    public Aluguel() {
    }

    /**
     * Construtor da classe Aluguel
     * @param imovel
     * @param corretor
     * @param valorAlugel
     * @param locatario
     * @param dtInicioLocacao
     * @param formaPagamento
     * @param jurosAtraso
     * @param moraPorDiaAtraso
     * @param descontoPagamentoAntecipado
     * @param fiadores
     * @param diaPagamento
     */
    public Aluguel(Imovel imovel, Funcionario corretor, BigDecimal valorAlugel, PessoaFisica locatario, GregorianCalendar dtInicioLocacao, EnumCondicaoPagamento formaPagamento, BigDecimal jurosAtraso, BigDecimal moraPorDiaAtraso, BigDecimal descontoPagamentoAntecipado, List<PessoaFisica> fiadores, GregorianCalendar diaPagamento) {
        this.imovel = imovel;
        this.corretor = corretor;
        this.valorAlugel = valorAlugel;
        this.locatario = locatario;
        this.dtInicioLocacao = dtInicioLocacao;
        this.formaPagamento = formaPagamento;
        this.jurosPorAtraso = jurosAtraso;
        this.moraPorDiaAtraso = moraPorDiaAtraso;
        this.descontoPagamentoAntecipado = descontoPagamentoAntecipado;
        this.fiadores = new LinkedList();
        this.diaPagamento = diaPagamento;
    }

    public Funcionario getCorretor() {
        return corretor;
    }

    public void setCorretor(Funcionario corretor) {
        this.corretor = corretor;
    }

    public BigDecimal getDescontoPagamentoAntecipado() {
        return descontoPagamentoAntecipado;
    }

    public void setDescontoPagamentoAntecipado(BigDecimal descontoPagamentoAntecipado) {
        this.descontoPagamentoAntecipado = descontoPagamentoAntecipado;
    }

    public GregorianCalendar getDiaPagamento() {
        return diaPagamento;
    }

    public void setDiaPagamento(GregorianCalendar diaPagamento) {
        this.diaPagamento = diaPagamento;
    }

    public GregorianCalendar getDtInicioLocacao() {
        return dtInicioLocacao;
    }

    public void setDtInicioLocacao(GregorianCalendar dtInicioLocacao) {
        this.dtInicioLocacao = dtInicioLocacao;
    }

    public List<PessoaFisica> getFiadores() {
        return fiadores;
    }

    public void setFiadores(List<PessoaFisica> fiadores) {
        this.fiadores = fiadores;
    }

    public EnumCondicaoPagamento getFormaPagamento() {
        return formaPagamento;
    }

    public void setFormaPagamento(EnumCondicaoPagamento formaPagamento) {
        this.formaPagamento = formaPagamento;
    }

    public Imovel getImovel() {
        return imovel;
    }

    public void setImovel(Imovel imovel) {
        this.imovel = imovel;
    }

    public BigDecimal getJurosAtraso() {
        return jurosPorAtraso;
    }

    public void setJurosAtraso(BigDecimal jurosAtraso) {
        this.jurosPorAtraso = jurosAtraso;
    }

    public PessoaFisica getLocatario() {
        return locatario;
    }

    public void setLocatario(PessoaFisica locatario) {
        this.locatario = locatario;
    }

    public BigDecimal getMoraPorDiaAtraso() {
        return moraPorDiaAtraso;
    }

    public void setMoraPorDiaAtraso(BigDecimal moraPorDiaAtraso) {
        this.moraPorDiaAtraso = moraPorDiaAtraso;
    }

    public BigDecimal getValorAlugel() {
        return valorAlugel;
    }

    public void setValorAlugel(BigDecimal valorAlugel) {
        this.valorAlugel = valorAlugel;
    }
}
